今日は月曜日ですが祭日です。家を出るとき母に言われるまで気付いていませんでした。
まあ、零細企業の経営者に休日は無いってことなので、大した問題ではありませんが。(とほほ)
今日は、まず、タイムゾーン関係のテストをもっと手厚くする必要があると言うことで、それを行おうとしたところ。致命的な問題を発見しました。時差というものは、1時間ごとだとばかり思っていたら、そうではないのです。30分や15分という時差を持った地域があるそうです。
たとえば、こういうところが、そういう例だそうです。(時差は日本時間との差)
アフガニスタン:-4時間30分、
インド:-3時間30分、
ネパール:-3時間15分
こういうのは正常に扱えないので、大慌てで、1時間ごとから1分ごとの処理に変更しました。
それに対応するテストも作成しましたが、何せ、時差については素人ですから、本当に正しいかどうかも自身がありません。テストデータをこのコンテンツの最後に付加しますので、知識があってお暇のある人は、ぜひチェックしてみてください。
それから、昨日は日本語XMLユーザーグループのメーリングリストサイト( https://www2.xml.gr.jp/ )も膨大な手間を時間を費やして(なぜなら資源が乏しいサーバなので、ファイルを一時別サーバに待避させてから.NET Framework 1.1を入れる必要があった!)、りすと亭を最新ベータ版に入れ替えました。ところが、いきなり、表紙ページの表示が非常に遅いという現象が起きていました。とほほと思いながら、今日はそれも調査しました。その結果、リスト板に登録されたメンバー数が多いとメンバー数を得る処理が非常に重くなるということが分かりました。1メンバー1ファイルとして記録されていますが、その一覧を得る処理が重いと言うことです。従来は総メンバー数が重要な意味を持つ処理が無かったので、特に大きな問題になっていませんでした。しかし、表紙にこの数を表示するようになったため、問題として浮かび上がったのでした。この問題は、人数をメモリ上にキャッシュして持つことで解決しました。
以上の2つの問題だけでも、かなり大変でしたが、そのあと、公開リリースとして、Beta-028を作成して公開しました( https://www.piedey.co.jp/listtei/download.html )。
とはいえ、まだ作業に残っているものがあります。まだ終わりではありません。頑張らねば。
以下はテストデータについての話。
以下は、今日追加したタイムゾーン処理用のテストデータです。
test1aのように最後にaが付く文字列が期待される結果。4桁の年+2桁の月+2桁の日+2桁の時(24時間制)+2桁の分+2桁の秒の文字列です。日本での時刻(JST)です。
test1bのように最後にbが付くのが処理対象の日付時刻です。
全部で15ケースあります。
一応、一生懸命調べながら作成したので合っていると思いますが、もし間違いがあればご連絡下さい。このテストデータそのものは、(あまり居ないとは思いますが)、もし使いたい人がいたら自由に使って構いません。特に連絡や許諾などは不用です。
const string test1a = "20030721134300";
const string test1b = "21 Jul 2003 09:13:00 +0430";
const string test2a = "20030721134400";
const string test2b = "21 Jul 2003 10:29:00 +0545";
const string test3a = "20030721135000";
const string test3b = "21 Jul 2003 04:50:00 +0000";
const string test4a = "20030721135000";
const string test4b = "21 Jul 2003 04:50:00 -0000";
const string test5a = "20030721135000";
const string test5b = "21 Jul 2003 04:50:00 UT";
const string test6a = "20030721135000";
const string test6b = "21 Jul 2003 04:50:00 GMT";
const string test7a = "20030721135000";
const string test7b = "20 Jul 2003 23:50:00 -0500";
const string test8a = "20030721135000";
const string test8b = "20 Jul 2003 23:50:00 EST";
const string test9a = "20030721125000";
const string test9b = "20 Jul 2003 23:50:00 EDT";
const string test10a = "20030721145000";
const string test10b = "20 Jul 2003 23:50:00 CST";
const string test11a = "20030721135000";
const string test11b = "20 Jul 2003 23:50:00 CDT";
const string test12a = "20030721155000";
const string test12b = "20 Jul 2003 23:50:00 MST";
const string test13a = "20030721145000";
const string test13b = "20 Jul 2003 23:50:00 MDT";
const string test14a = "20030721165000";
const string test14b = "20 Jul 2003 23:50:00 PST";
const string test15a = "20030721155000";
const string test15b = "20 Jul 2003 23:50:00 PDT";